package only.my.railgunys.artifact;

import only.my.railgunys.artifact.calc.MainStatRollCalc;

public enum ArtifactMain {

    flatATK(1,"值攻击", MainStatRollCalc::flatATK),
    percentHP(2,"百分比生命",MainStatRollCalc::percentHP),
    percentATK(3,"百分比攻击",MainStatRollCalc::percentATK),
    percentDEF(4,"百分比防御",MainStatRollCalc::percentDEF),
    critRate(4,"暴击率",MainStatRollCalc::critRate),
    critDamage(5,"暴击伤害",MainStatRollCalc::critDamage),
    elementalMastery(6,"精通",MainStatRollCalc::elementalMastery),
    energyRecharge(7,"充能",MainStatRollCalc::energyRecharge),
    physicalDamage(8,"物理伤害",MainStatRollCalc::physicalDamage),
    hydroDamage(9,"水元素伤害",MainStatRollCalc::hydroDamage),
    pyroDamage(10,"火元素伤害",MainStatRollCalc::pyroDamage),
    cryoDamage(11,"冰元素伤害",MainStatRollCalc::cryoDamage),
    geoDamage(12,"岩元素伤害",MainStatRollCalc::geoDamage),
    electroDamage(13,"雷元素伤害",MainStatRollCalc::electroDamage),
    anemoDamage(14,"风元素伤害",MainStatRollCalc::anemoDamage),
    dendroDamage(15,"草元素伤害",MainStatRollCalc::dendroDamage),
    healing(16,"治疗加成",MainStatRollCalc::healing),
    flatHP(17,"值生命",MainStatRollCalc::flatHP),
    ;

    int code;
    double value;
    String desc;
    MainStatUpgradeFunction mainStatUpgradeFunction;

    ArtifactMain(int code, String desc,MainStatUpgradeFunction mainStatUpgradeFunction) {
        this.code = code;
        this.desc = desc;
        this.mainStatUpgradeFunction = mainStatUpgradeFunction;
    }

    public int getCode() {
        return code;
    }

    public void setCode(int code) {
        this.code = code;
    }

    public double getValue() {
        return value;
    }

    public void setValue(double value) {
        this.value = value;
    }

    public String getDesc() {
        return desc;
    }

    public void setDesc(String desc) {
        this.desc = desc;
    }

    public MainStatUpgradeFunction getMainStatUpgradeFunction() {
        return mainStatUpgradeFunction;
    }

    public void setMainStatUpgradeFunction(MainStatUpgradeFunction mainStatUpgradeFunction) {
        this.mainStatUpgradeFunction = mainStatUpgradeFunction;
    }
}
